0장. 한눈에 보기
출처: 『AI 엔지니어링』(Chip Huyen 지음, 한국어판) | 원서: AI Engineering (O'Reilly)
코드는 분위기만 — Python·API·import 같은 말은 몰라도 됩니다. 표의 '비유'와 '위험'만 봐도 충분해요.
이 책 큰 그림 4가지만
- 이제는 모델을 직접 만들지 않는다. 남이 만들어 둔 거대한 모델을 가져다 쓴다. 그 거대한 모델을 파운데이션 모델이라 부른다.
- 그 모델을 부리는 일이 이 책의 주제다. 말로 시키고(프롬프트), 자료를 붙여 주고(RAG), 잘하는지 채점하고(평가), 필요하면 다듬는다(파인튜닝).
- 가장 중요한 진실 하나. 데모는 주말에 뚝딱, 진짜 제품은 몇 달이 걸린다. 마지막 마무리가 제일 어렵다.
- 그래서 채점(평가)이 이 책의 심장이다. 잘 만들었는지 모르면 고칠 수도 없다.
이 0장은 책 본문에 나오는 어려운 말을 미리 풀어 둔 곳이다.
뒤 장에서 막히면 여기로 돌아오면 된다.
용어집(0절)과 개념 척추가 전부다. 천천히 읽으면 된다.
0. 먼저 알아둘 말 (용어집)
이 절은 책 전체 용어의 단일 출처다.
본문 어디서 어려운 말이 나와도, 그 뜻은 전부 여기 적혀 있다.
각 용어는 [한 문장 뜻 + 일상비유 + 한 줄 예] 3종으로 적었다.
파운데이션 모델(foundation model)
한 문장 뜻 — 인터넷만큼 방대한 데이터로 미리 학습돼, 한 가지가 아니라 온갖 일에 두루 쓰이는 거대한 모델.
일상비유 — 만능 신입이 아니라 만능 베테랑. 번역도 하고, 요약도 하고, 코드도 짜고, 그림도 만든다. 따로 가르칠 필요 없이 이미 다 할 줄 안다.
한 줄 예 —
# 내가 학습시키지 않은 거대 모델을 그냥 불러서 씀
answer = model.ask("이 문장 영어로 번역해줘")
LLM(대규모 언어 모델, large language model)
한 문장 뜻 — 다음에 올 단어를 확률로 맞히는 일을 거대하게 키운 모델. 파운데이션 모델 중 글을 다루는 쪽.
일상비유 — 휴대폰 자동완성의 끝판왕. "사느냐 죽느냐" 까지 치면 "그것이 문제로다" 를 척척 이어 붙인다.
한 줄 예 —
# 앞 문장을 주면 뒤를 이어서 완성함
model.complete("To be or not to be,") # → " that is the question"
토큰(token)
한 문장 뜻 — 모델이 글을 다룰 때 쓰는 가장 작은 조각. 한 단어일 수도, 단어의 일부일 수도 있다.
일상비유 — 레고 블록. 모델은 문장을 통째로 보지 않고 블록(토큰) 단위로 쪼개서 다룬다. 영어 기준 100토큰이 대략 75단어쯤 된다.
한 줄 예 —
# "engineering" 한 단어가 여러 토큰으로 쪼개질 수 있음
tokens = ["engineer", "ing"] # 두 조각 = 토큰 2개
프롬프트(prompt)
한 문장 뜻 — 모델에게 시킬 일을 적어 주는 입력 글. 모델을 부리는 가장 기본 수단.
일상비유 — 식당 주문서. 잘 적으면 원하는 게 나오고, 대충 적으면 엉뚱한 게 나온다. 주문서를 바꿔 가며 원하는 결과를 끌어내는 게 솜씨다.
한 줄 예 —
# 모델에게 건네는 지시문 한 덩어리가 프롬프트
prompt = "다음 글을 세 줄로 요약해줘: ..."
임베딩(embedding)
한 문장 뜻 — 글·그림의 '의미'를 숫자 목록(벡터)으로 바꿔, 뜻이 비슷하면 숫자도 가깝게 만든 표현.
일상비유 — 지도 위 좌표. 비슷한 동네는 가까이, 먼 동네는 멀리 찍힌다. "강아지" 와 "개" 는 좌표가 거의 붙어 있고, "강아지" 와 "우주선" 은 멀리 떨어진다.
한 줄 예 —
# "고양이" 라는 뜻을 숫자 좌표로 바꾼 것
vec = embed("고양이") # 예: [0.11, 0.02, 0.54, ...]
파인튜닝(fine-tuning)
한 문장 뜻 — 이미 다 만들어진 모델을, 우리 일에 맞게 추가로 조금 더 가르쳐 손보는 일.
일상비유 — 경력직 재교육. 일머리는 이미 있는 사람에게 우리 회사 규칙만 며칠 추가로 가르치는 것. 신입을 처음부터 키우는 것(처음부터 학습)과는 비교도 안 되게 싸고 빠르다.
한 줄 예 —
# 다 된 모델에 우리 데이터로 추가 학습 한 스푼
my_model = finetune(base_model, our_examples)
추론, inference
한 문장 뜻 — 다 만들어진 모델에게 실제로 질문을 넣고 답을 받아내는 '쓰는' 단계. (학습은 '만드는' 단계, 추론은 '쓰는' 단계.)
일상비유 — 자판기에 동전 넣고 음료 뽑기. 자판기를 공장에서 만드는 게 학습이라면, 동전 넣고 콜라가 나오는 순간이 추론이다. 매번 돈(컴퓨팅 비용)이 든다.
한 줄 예 —
# 모델을 실제로 한 번 굴려서 답을 받는 것 = 추론 1회
result = model.run(prompt) # 이 한 줄이 돌 때마다 비용 발생
평가, eval
한 문장 뜻 — 모델이 내놓은 답이 좋은지 나쁜지 채점하는 일.
일상비유 — 시험 채점. 객관식(정답 하나)은 채점이 쉽지만, 작문(정답 여럿)은 채점이 어렵다. 모델 답은 작문 쪽에 가까워서 채점이 이 책에서 제일 어려운 일이다.
한 줄 예 —
# 모델 답이 기준을 통과하는지 점수 매기기
score = evaluate(model_answer, 기준="사실과 맞는가")
RAG(검색 증강 생성, retrieval-augmented generation)
한 문장 뜻 — 모델이 답하기 전에, 관련 자료를 먼저 찾아 붙여 주고 그걸 보고 답하게 하는 방식.
일상비유 — 오픈북 시험. 머리로만 답하면 틀리기 쉬운 문제도, 관련 페이지를 펴 놓고 보면서 답하면 훨씬 정확하다. 모델에게 "이 자료 보고 답해" 라고 자료를 펴 주는 것.
한 줄 예 —
# 먼저 관련 문서를 찾아 프롬프트에 붙여 줌
docs = search("환불 규정")
model.ask(prompt + docs) # 자료 보고 답하라고 첨부
에이전트(agent)
한 문장 뜻 — 스스로 계획을 세우고, 검색·계산기 같은 도구를 직접 써 가며 여러 단계 일을 처리하는 AI.
일상비유 — 심부름 잘하는 비서. "내일 회의 잡아줘" 한마디면 캘린더 열고, 빈 시간 찾고, 초대장 보내는 일을 알아서 단계별로 해낸다.
한 줄 예 —
# 모델이 스스로 도구를 골라 여러 단계를 진행
agent.run("내일 비 오면 우산 챙기라고 알려줘")
# → 날씨 검색 도구 사용 → 판단 → 알림
지연 시간, latency
한 문장 뜻 — 질문을 넣고 답이 나오기까지 걸리는 시간. 짧을수록 좋다.
일상비유 — 음식 나오는 속도. 맛(품질)이 좋아도 한 시간 걸리면 손님은 떠난다. 첫 글자가 나오기까지의 시간(TTFT)과 글자가 줄줄 이어지는 속도(TPOT)를 따로 잰다.
한 줄 예 —
# 보내고 → 첫 답 글자 뜰 때까지의 시간이 지연 시간
start = now()
first_token = model.stream(prompt) # 첫 토큰까지 = TTFT
자기지도학습(self-supervised learning)
한 문장 뜻 — 사람이 정답표를 따로 만들어 주지 않아도, 데이터 자체에서 정답을 뽑아내 배우는 방식.
일상비유 — 가림 학습. 문장 "나는 김밥을 좋아한다" 에서 뒷부분을 손으로 가리고 "다음에 뭐가 올까?" 맞히기를 반복한다. 정답이 이미 문장 안에 있으니 따로 채점표가 필요 없다.
한 줄 예 —
# 문장 하나에서 (입력 → 정답) 쌍이 저절로 만들어짐
"나는" → "김밥을" # 정답을 사람이 안 달아도 됨
멀티모달(multimodal)
한 문장 뜻 — 글뿐 아니라 그림·소리·영상 같은 여러 형태를 함께 다루는 것.
일상비유 — 오감을 쓰는 사람. 글만 읽는 게 아니라 보고(이미지), 듣고(음성)까지 한다. 사진을 주고 "이게 뭐야?" 물어도 답할 수 있게 된 비결.
한 줄 예 —
# 글과 이미지를 함께 입력으로 받음
model.ask(image=photo, text="이 사진 설명해줘")
환각(hallucination)
한 문장 뜻 — 모델이 사실이 아닌 내용을 아주 그럴듯하게 지어내는 현상.
일상비유 — 아는 척하는 사람. 모르면서도 자신만만하게 틀린 답을 술술 말한다. 말투가 매끄러워서 더 잘 속는다.
한 줄 예 —
# 있지도 않은 책·논문을 진짜처럼 지어냄
model.ask("그 논문 출처 알려줘")
# → 그럴듯하지만 존재하지 않는 제목을 답함(환각)
AI 엔지니어링(AI engineering)
한 문장 뜻 — 이미 만들어진 파운데이션 모델 위에 쓸모 있는 애플리케이션을 만드는 일. 이 책 전체의 주제다.
일상비유 — 요리 vs 농사. 직접 농사(모델 학습)를 짓지 않고, 시장에서 산 좋은 재료(이미 만든 모델)로 요리(앱)를 하는 것. 대부분의 사람에게는 요리가 더 현실적인 기회다.
한 줄 예 —
# 모델을 직접 안 만들고, 가져다 써서 앱을 만듦
app = build_app(using=foundation_model)
개념 척추
여기 7개는 책 전체를 관통하는 큰 줄기다.
각각 ①망가지는 장면 ②일상비유 ③비유·코드·위험 표 ④한 문장 정의 순서다.
척추 1 — 모델을 가져다 쓴다 (파운데이션 모델)
망가지는 장면
"AI 앱 만들려면 데이터 수백만 개 모아서 모델부터 학습해야겠지?" 하고 6개월을 잡았다.
그런데 옆 팀은 이미 만들어진 모델을 가져다 주말 만에 데모를 띄웠다. 시작점이 완전히 달랐던 것이다.
일상비유
집을 짓는데 벽돌부터 직접 굽는 사람은 없다. 다 구워진 벽돌을 사 와서 쌓는다.
파운데이션 모델은 이미 구워진 벽돌이다. 우리는 그걸 쌓아 집(앱)을 짓는 사람이다.
| 비유 | 코드 | 위험 |
|---|---|---|
| 다 구워진 벽돌을 삼 | model = load_foundation() |
모델을 못 고침 — 남의 것이라 한계도 그대로 |
| 벽돌을 직접 구움(처음부터 학습) | train_from_scratch(data) |
데이터·돈·시간 천문학적 — 대부분 불필요 |
한 문장 정의 — 파운데이션 모델은 방대한 데이터로 미리 학습돼 여러 일에 두루 쓰이는 거대 모델이며, AI 엔지니어링은 이 모델을 직접 만들지 않고 가져다 쓰는 데서 출발한다.
척추 2 — 말로 시킨다 (프롬프트)
망가지는 장면
같은 모델에게 같은 질문을 했는데, 한 번은 멀쩡한 답이, 한 번은 엉뚱한 답이 나왔다.
알고 보니 시키는 말(프롬프트)을 조금 바꿨더니 결과가 확 달라진 거였다. 모델은 시키는 대로 움직인다.
일상비유
식당 주문서. "그냥 알아서 주세요" 와 "덜 맵게, 면 적게, 국물 많이" 는 전혀 다른 음식이 나온다.
원하는 걸 구체적으로 적을수록 원하는 게 나온다.
| 비유 | 코드 | 위험 |
|---|---|---|
| 또렷한 주문서 | ask("3줄로, 초등학생도 알게 요약") |
안전 — 원하는 결과가 나옴 |
| 대충 주문서 | ask("요약") |
길이·난이도 들쭉날쭉, 결과 안 맞음 |
한 문장 정의 — 프롬프트는 모델에게 시킬 일을 적는 입력 글이며, 가중치를 건드리지 않고 말만 바꿔 결과를 끌어내는 가장 기본 수단이다.
척추 3 — 맥락을 붙인다 (RAG)
망가지는 장면
회사 환불 규정을 물었더니, 모델이 그럴듯하지만 우리 회사엔 없는 규정을 지어냈다.
모델은 우리 회사 내부 문서를 본 적이 없다. 머리에 없는 걸 물으니 지어낸 것이다.
일상비유
오픈북 시험. 외워서 답하면 헷갈리는 문제도, 관련 페이지를 펴 놓고 보면서 답하면 정확해진다.
모델에게 답하기 전에 "이 문서 먼저 보고 답해" 라고 자료를 펴 주는 게 RAG다.
| 비유 | 코드 | 위험 |
|---|---|---|
| 오픈북(자료 펴 줌) | ask(prompt + 찾아온_문서) |
안전 — 자료 근거로 답함 |
| 폐쇄북(맨몸 질문) | ask(prompt) |
머리에 없으면 지어냄(환각) |
한 문장 정의 — RAG는 모델이 답하기 전에 관련 자료를 찾아 붙여 주는 방식이며, 모델 머릿속에 없는 최신·내부 정보를 맥락으로 보충해 환각을 줄인다.
척추 4 — 채점한다 (평가)
망가지는 장면
챗봇을 배포한 지 1년이 지났는데, 이게 잘 답하는 건지 아닌지 아무도 모른다.
좋은지 나쁜지를 모르니 어디를 고쳐야 할지도 모른다. 채점 기준이 없었던 탓이다.
일상비유
시험 채점. 객관식은 정답이 하나라 채점이 쉽다.
하지만 모델 답은 작문에 가깝다. 같은 질문에 멀쩡한 답이 여러 개라, 채점이 이 책에서 제일 어려운 일이 된다.
| 비유 | 코드 | 위험 |
|---|---|---|
| 객관식 채점(정답 하나) | answer == 정답 |
쉬움 — 하지만 모델 일엔 잘 안 맞음 |
| 작문 채점(정답 여럿) | judge(answer, 기준) |
어려움 — 그래도 안 하면 품질을 영영 모름 |
한 문장 정의 — 평가는 모델 답의 좋고 나쁨을 채점하는 일이며, 답이 여러 개 가능한 개방형이라 어렵지만 안 하면 제품을 고칠 수도 없는 AI 엔지니어링의 심장이다.
척추 5 — 다듬는다 (파인튜닝)
망가지는 장면
프롬프트를 아무리 정교하게 써도, 우리 회사 특유의 말투와 양식만큼은 모델이 끝내 못 맞췄다.
말로 시키는 데는 한계가 있었다. 이럴 땐 모델 자체를 조금 더 가르쳐야 한다.
일상비유
경력직 재교육. 일머리는 이미 있는 사람에게, 우리 회사 규칙과 말투만 며칠 더 가르치는 것.
신입을 처음부터 키우는 것(처음부터 학습)과는 비교가 안 되게 싸고 빠르다.
| 비유 | 코드 | 위험 |
|---|---|---|
| 재교육(추가로 가르침) | finetune(model, 우리_예시) |
품질↑ 가능 — 단 데이터·수고 더 듦 |
| 말로만 시킴(프롬프트) | ask(아주_긴_지시문) |
거의 공짜·빠름 — 복잡한 건 한계 |
한 문장 정의 — 파인튜닝은 이미 학습된 모델을 우리 일에 맞게 추가로 가르쳐 다듬는 일이며, 말(프롬프트)로 안 되는 깊은 조정이 필요할 때 쓰는 더 무거운 수단이다.
척추 6 — 운영한다 (추론·비용·지연)
망가지는 장면
답 품질은 좋은데, 한 번 묻고 답을 받는 데 5초가 걸렸다.
게다가 사용자가 늘자 매달 청구서가 폭발했다. 모델은 굴릴 때마다(추론) 시간과 돈을 먹는다는 걸 몰랐던 것이다.
일상비유
자판기. 음료(답)가 맛있어도, 버튼 누르고 1분 기다려야 나오면 손님은 떠난다.
게다가 한 캔 뽑을 때마다 돈이 든다. 맛(품질)만큼 속도(지연)와 단가(비용)도 챙겨야 한다.
| 비유 | 코드 | 위험 |
|---|---|---|
| 빨리 나오는 자판기 | 첫 토큰까지 짧음(TTFT 작음) | 안전 — 사용자가 안 떠남 |
| 느리고 비싼 자판기 | model.run() 한 번에 5초·고비용 |
사용자 이탈 + 청구서 폭발 |
한 문장 정의 — 추론은 다 만든 모델을 실제로 굴려 답을 받는 단계이며, 굴릴 때마다 지연 시간과 비용이 들기 때문에 품질만큼 속도·단가를 함께 관리해야 한다.
척추 7 — 알아서 처리한다 (에이전트)
망가지는 장면
"내일 날씨 보고 우산 챙기라고 알려줘" 라고 했더니, 모델이 날씨를 모른 채 그냥 둘러대는 답을 내놨다.
모델은 인터넷을 직접 보거나 캘린더를 열 수 없었다. 도구가 없으면 여러 단계 일을 못 해낸다.
일상비유
심부름 잘하는 비서. "회의 잡아줘" 한마디에 캘린더 열고, 빈 시간 찾고, 초대장 보내는 일을 알아서 단계별로 해낸다.
비서에게 도구(전화·달력·검색)를 쥐여 주면 혼자 여러 단계를 처리한다.
| 비유 | 코드 | 위험 |
|---|---|---|
| 도구 쥔 비서 | agent.run(목표) → 검색·계산 사용 |
강력 — 단 잘못된 단계가 줄줄이 번짐 |
| 맨손 모델(도구 없음) | ask(목표) |
외부 정보·행동이 필요한 일은 둘러댐 |
한 문장 정의 — 에이전트는 스스로 계획을 세우고 도구를 써서 여러 단계 일을 처리하는 AI이며, 한 번의 질문·답으로 끝나는 모델보다 훨씬 많은 일을 해내는 대신 단계가 꼬일 위험도 함께 커진다.
한 걸음 더 ▸ (지금 몰라도 됨)
지금은 큰 줄기 하나만 들고 가면 된다. 모델을 가져다 → 말로 시키고 → 자료를 붙이고 → 채점하고 → 다듬고 → 운영한다. 이 순서가 책 전체의 뼈대다.
"언제 프롬프트로 충분하고, 언제 파인튜닝까지 가야 하나" 같은 균형 판단은 더 깊은 주제다. 지금은 "쉬운 것(프롬프트)부터, 안 되면 무거운 것(파인튜닝)으로" 라는 규칙 하나만 들고 가면 된다.
사이드박스 — 한 조각 배경 (흥미용)
'다음 단어 맞히기' 라는 아이디어 자체는 아주 오래됐다. 정보 이론의 창시자 클로드 섀넌이 1951년에 이미 영어의 통계적 특성(글자 E가 가장 흔하다 같은)을 연구했다.
그 오래된 아이디어를 인터넷 규모로 키웠더니 어느 순간 사람처럼 글을 쓰기 시작했다. 외워 둘 필요는 없다.
부록 박스 — 만드는 일 vs 쓰는 일 (참고용, 건너뛰어도 됨)
모델을 직접 만드는 일을 ML 엔지니어링, 다 만든 모델을 가져다 쓰는 일을 AI 엔지니어링이라 부른다. 이 책은 뒤쪽, 즉 '쓰는' 쪽이다.
그래서 이 책의 코드는 모델 내부를 짜는 게 아니라, 모델을 불러 시키고·붙이고·채점하는 쪽에 가깝다. 코드는 전부 분위기만 봐도 된다.
다음 장 예고
다음 1장에서는 모델이 어떻게 이렇게 거대해졌는지, 그리고 그 위에서 무엇을 만드는지 전체 그림을 본다.
지금 0장 용어와 척추만 머리에 있으면 충분하다. 나머지는 1장부터 천천히 다룬다.
클릭하거나 Space를 눌러 뒤집기